La función range() e iteradores

Nota: Algunas celdas de este notebook no se puede correr usando binder, unicamente desde una instalacion local de jupyter. Si la celda se puede correr usando binder, estara indicado en un comentario en la celda correspondiente.


In [ ]:
# esta celda funciona en binder
range(10)

In [ ]:
# esta celda funciona en binder
for i in range(10):
    print(i)

In [ ]:
# esta celda funciona en binder
type(range(10))

In [ ]:
# esta celda funciona en binder
list(range(10))

In [ ]:
import turtle   
ventana = turtle.Screen()     
german = turtle.Turtle()

In [ ]:
for i in range(10):
    german.forward(15)
    german.right(90)
    german.forward(15)
    german.left(90)

In [ ]:
repeticiones=10
dist=15
angulo=90
for i in range(repeticiones):
    german.forward(dist)
    german.right(angulo)
    german.forward(dist)
    german.left(angulo)

In [ ]:
# esta celda funciona en binder
ar=range(0, 19, 2)
br=range(0, 20, 2)
cr=range(10, 0, -1)

In [ ]:
# esta celda funciona en binder
for a in ar:
    print(a) # inténtalo con los demás rangos, br y cr para ver qué ocurre

¿En el comando range(3, 10, 2) para qué sirve el segundo argumento (10)?

  • (a) El rango se debe detener en el 9.
  • (b) El rango debe iniciar en el 10.
  • (c) El rango inicia desde 3 y termina en 10 (incluyendo el 10).
  • (d) El rango incluye números que van de diez en diez.

¿Qué comando genera la lista [2, 5, 8]?

  • (a) range(2, 5, 8)
  • (b) range(2, 8, 3)
  • (c) list(range(2, 5, 8))
  • (d) list(range(2, 8, 3))

¿Qué ocurre si el rango sólo tiene un argumento?

  • (a) El rango empieza desde 0 y se incluyen todos los números excepto el argumento con el que se llamó a range.
  • (b) El rango empieza desde 1 y se incluyen todos los números excepto el argumento con el que se llamó a range.
  • (c) El rango empieza desde 1 y se incluyen todos los números incluyendo el argumento con el que se llamó a range.
  • (d) Causa un error, siempre necesita 3 argumentos.

Ejercicio (unicamente con una instalacion local de Jupyter, no en binder)

Trata de hacer un círculo, una espiral y un barco. Prueba también los métodos penup, pendown, shape, stamp, speed. Los argumentos permitidos para shape son arrow, blank, circle, classic, square, triangle, turtle. Hay una lista resumida de métodos en http://interactivepython.org/runestone/static/thinkcspy/PythonTurtle/SummaryofTurtleMethods.html.

Este material fue recopilado para Clubes de Ciencia Colombia 2017 por Luis Henry Quiroga (GitHub: lhquirogan) - Germán Chaparro (GitHub: saint-germain), y fue traducido y adaptado de http://interactivepython.org/runestone/static/thinkcspy/index.html

Copyright (C) Brad Miller, David Ranum, Jeffrey Elkner, Peter Wentworth, Allen B. Downey, Chris Meyers, and Dario Mitchell. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with Invariant Sections being Forward, Prefaces, and Contributor List, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.